perm filename INFIX.LSP[BNF,JRA]1 blob sn#005878 filedate 1973-03-14 generic text, type T, neo UTF8

(DEFPROP <PRED> 
 (LAMBDA NIL
  (NLRR (QUOTE PRED)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (<PREPREDLET>) (<ITMLST>)) (CONS (STK 1) (STK 0)))
		((AND (<TM>) (<INFPREDLET>) (<TM1>)) (CONS (STK 1) (CONS (STK 2) (CONS (STK 0) NIL))))
		(*NIL*)))))) 
EXPR)

(DEFPROP <ITMLST> 
 (LAMBDA NIL (NLRR (QUOTE ITMLST) (FUNCTION (LAMBDA NIL (COND ((AND (CH /() (<ITMS>)) (STK 0)) (*NIL*)))))) 
EXPR)

(DEFPROP <ITMS> 
 (LAMBDA NIL
  (NLRR (QUOTE ITMS)
	(FUNCTION
	 (LAMBDA NIL
	  (COND ((AND (<TM2>) (<ITMS>)) (CONS (STK 1) (STK 0)))
		((AND (<TM>) (CH /))) (CONS (STK 1) NIL))
		(*NIL*)))))) 
EXPR)

(DEFPROP <TM> 
 (LAMBDA NIL
  (LRR (QUOTE TM)
       (FUNCTION
	(LAMBDA NIL
	 (COND ((AND (<IVAR>)) (STK 0))
	       ((AND (<PREFN>) (<ITMLST>)) (CONS (STK 1) (STK 0)))
	       ((AND (<PREFN>)) (CONS (STK 0) NIL))
	       ((AND (CH /() (<TM>) (CH /))) (STK 1))
	       (*NIL*))))
       (FUNCTION
	(LAMBDA (<*>) (COND ((AND (<INFN>) (<TM1>)) (CONS (STK 1) (CONS <*> (CONS (STK 0) NIL)))) (*NIL*)))))) 
EXPR)

(DEFPROP <TM1> 
 (LAMBDA NIL (NLRR (QUOTE TM1) (FUNCTION (LAMBDA NIL (COND ((AND (<TM>)) (STK 0)) (*NIL*)))))) 
EXPR)

(DEFPROP <TM2> 
 (LAMBDA NIL (NLRR (QUOTE TM2) (FUNCTION (LAMBDA NIL (COND ((AND (<TM>) (CH /,)) (STK 1)) (*NIL*)))))) 
EXPR)

(DEFPROP >PRED< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (* . *))) (>PREPREDLET< 1) (>ITMLST< 0)) (LIST (STK1) (STK0)))
		  ((AND (MATCH (QUOTE (* * *))) (>INFPREDLET< 2) (>TM< 1) (>TM1< 0))
		   (LIST (STK1) (STK2) (STK0)))))))) 
EXPR)

(DEFPROP >ITMLST< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>ITMS< 1) (LIST (QUOTE (:CH /()) (STK1)))))))) 
EXPR)

(DEFPROP >ITMS< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((AND (MATCH (QUOTE (*))) (>TM< 0)) (LIST (STK0) (QUOTE (:CH /)))))
		  ((AND (MATCH (QUOTE (* . *))) (>TM2< 1) (>ITMS< 0)) (LIST (STK1) (STK0)))))))) 
EXPR)

(DEFPROP >TM< 
 (LAMBDA(%N)
  (OUTRUL %N
	  (FUNCTION
	   (LAMBDA NIL
	    (COND ((>IVAR< 1) (STK1))
		  ((AND (MATCH (QUOTE (*))) (>PREFN< 0)) (STK0))
		  ((AND (MATCH (QUOTE (* * *))) (>INFN< 2) (>TM< 1) (>TM1< 0)) (LIST (STK1) (STK2) (STK0)))
		  ((AND (MATCH (QUOTE (* . *))) (>PREFN< 1) (>ITMLST< 0)) (LIST (STK1) (STK0)))
		  ((>TM< 1) (LIST (QUOTE (:CH /()) (STK1) (QUOTE (:CH /)))))))))) 
EXPR)

(DEFPROP >TM1< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>TM< 1) (STK1))))))) 
EXPR)

(DEFPROP >TM2< 
 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((>TM< 1) (LIST (STK1) (QUOTE (:CH /,))))))))) 
EXPR)